<?php 
/**
 * QFrameWork
 *
 * @author: quyang
 * @intro:常用函数
 * @date: 2010-1-18
 * @version: 1.0
 */


 /**
 * Object to Array
 *
 * Takes an object as input and converts the class variables to array key/vals
 *
 * @access	private
 * @param	object
 * @return	array
 */
function object_to_array($object) {
    return (is_object($object)) ? get_object_vars($object) : $object;
}


function is_mobile($mobile) {
    return is_numeric($mobile) && strlen($mobile) == 11 && in_array(substr($mobile, 0, 2), array('13', '15', '18'));
}

function is_ipaddr($ip) {
    return $ip == long2ip(ip2long($ip));
}
/**
 * 拼装不规则列表HTML数据
 * @param array $arrData 需要遍历显示的数据
 * @param int $iSeparate 每隔几条数据进行特殊渲染
 * @param string $sStartHTML 开始标签附近的HTML
 * @param string $sEndHTML 结束标签附近的HTML
 * @param string $sCallback 指定回调方法
 * @return mix 拼好的HTML数据
 *
 * @demo:
 *	$arr = array(1,2,3,4,5,6,7);
 *	echo renderIrregularHTML($arr, 3, '<ul class="small_pic_text">'."\n", '</ul>'."\n", "getHTML");
 *
 *  class SimpleTest{
 *		function getHTML($value){
 *			return '<li>'.$value.'</li>'."\n";
 *		}
 *  }
 *
 */
function renderIrregularHTML($arrData, $iSeparate, $sStartHTML, $sEndHTML, $sCallback) {
    if (!is_array($arrData)) {
        return "哥们，数据没取到吧？";
    }
    if (!function_exists($sCallback)) {
        return "哥们你写回调方法了吗？";
    }
    $iCount = count($arrData);
    
    $sHTML = $sStartHTML;
    foreach ($arrData as $value) {
        $i++;
        $iMod = $i % $iSeparate;
        $sHTML .= call_user_func($sCallback, $value);
        if (0 == $iMod && $i < $iCount) {
            $sHTML .= $sEndHTML;
            $sHTML .= $sStartHTML;
        }
    }
    $sHTML .= $sEndHTML;
    return $sHTML;
}
/**
 * 分页 相册7.0版
 *
 * @param int $total_rows 总记录数
 * @param int $page_now 当前页数
 * @param string $url 地址
 * @param int $pagesize 每页记录数
 * @return string
 */
function pager($total_rows, $page_now, $url, $pagesize = 10, $aCss = array()) {
    //不足一页什么都不显示。
    if ($total_rows <= $pagesize) {
        return '';
    }
    $page_total = ceil($total_rows / $pagesize);
    if ($page_total < 1) {
        return '';
    } else {
        //上一页
        $prev = $page_now > 1 ? '<li class="PH_pgprev"><a href="'.str_replace('(*)', ($page_now - 1), $url).'" title="跳转至第 '.($page_now - 1).' 页">&lt;上一页</a></li>' : '';
        //下一页
        $next = $page_now < $page_total ? '<li class="PH_pgnext"><a href="'.str_replace('(*)', ($page_now + 1), $url).'" title="跳转至第 '.($page_now + 1).' 页">下一页&gt;</a></li>' : '';
        
        if ($page_total <= 11) {
            for ($i = 1; $i <= $page_total; $i++) {
                if ($i == 1) {
                    $title = '跳转至第一页';
                } elseif ($i == $page_total) {
                    $title = '跳转至最后一页';
                } else {
                    $title = '跳转至第 '.$i.' 页';
                }
                $page_list[] = $i == $page_now ? '<li class="PH_pgon" title="当前所在页">'.$i.'</li>' : '<li><a href="'.str_replace('(*)', $i, $url).'" title="'.$title.'">'.$i.'</a></li>';
            }
        } else {
            if ($page_now <= 6) {
                for ($i = 1; $i <= 10; $i++) {
                    if ($i == 1) {
                        $title = '跳转至第 1 页';
                    } else {
                        $title = '跳转至第 '.$i.' 页';
                    }
                    $page_list[] = $i == $page_now ? '<li class="PH_pgon" title="当前所在页">'.$i.'</li>' : '<li><a href="'.str_replace('(*)', $i, $url).'" title="'.$title.'">'.$i.'</a></li>';
                }
                $page_list[] = '<li class="PH_pgelip">...</li>';
                $page_list[] = '<li><a href="'.str_replace('(*)', $page_total, $url).'" title="跳转至最后一页">'.$page_total.'</a></li>';
            } elseif ($page_total - 6 < $page_now) {
                $page_list[] = '<li><a href="'.str_replace('(*)', 1, $url).'" title="跳转至第一页">1</a></li>';
                $page_list[] = '<li class="PH_pgelip">...</li>';
                for ($i = $page_total - 9; $i <= $page_total; $i++) {
                    $title = '跳转至第 '.$i.' 页';
                    $page_list[] = $i == $page_now ? '<li class="PH_pgon" title="当前所在页">'.$i.'</li>' : '<li><a href="'.str_replace('(*)', $i, $url).'" title="'.$title.'">'.$i.'</a></li>';
                }
            } else {
                $min = max($page_now - 4, 1);
                $max = min($page_now + 5, $page_total);
                $diff = 8 - ($max - $min);
                if ($diff < 0 && $max != $page_total) {
                    $max = $max + $diff;
                }
                $page_list[] = '<li><a href="'.str_replace('(*)', 1, $url).'" title="跳转至第一页">1</a></li>';
                $page_list[] = '<li class="PH_pgelip">...</li>';
                for ($i = $min; $i <= $max; $i++) {
                    $title = '跳转至第 '.$i.' 页';
                    $page_list[] = $i == $page_now ? '<li class="PH_pgon" title="当前所在页">'.$i.'</li>' : '<li><a href="'.str_replace('(*)', $i, $url).'" title="'.$title.'">'.$i.'</a></li>';
                }
                if ($max != $page_total) {
                    $page_list[] = '<li class="PH_pgelip" title="'.$title.'">...</li>';
                    $page_list[] = '<li><a href="'.str_replace('(*)', $page_total, $url).'"  title="跳转至最后一页">'.$page_total.'</a></li>';
                }
            }
        }
        return '<ul class="PH_pages">'.$prev.implode('', $page_list).$next.'</ul>';
    }
}
/**
 * 格式化时间
 *
 * @param int $iTime
 * @param boolean $home : home页评论样式和其他页略有不同
 * @return string
 */
function format_time($iTime, $home = false) {
    $iNow = time();
    $sReturn = '';
    $iTimeDiff = $iNow - $iTime;
    if ($iTimeDiff < 3600) {
        $sReturn = ($iTimeDiff > 60) ? intval($iTimeDiff / 60) : 1;
        $sReturn .= "分钟前";
    } elseif ($iTime < strtotime("yesterday")) {
        if ($home) {
            $sReturn = date("m-d H:i", $iTime);
        } else {
            $sReturn = date("Y-m-d H:i", $iTime);
        }
        
    } elseif ($iTime < strtotime("today")) {
        $sReturn = "昨天&nbsp;".date("H:i", $iTime);
    } else {
        $sReturn = "今天&nbsp;".date("H:i", $iTime);
    }
    return $sReturn;
}
/**
 * 检查验证码的程序，通过返回true，否则返回false
 *
 * @param string $user_input
 * @param string $session_code
 * @return boolean
 */
function check_validate_code($user_input, $session_code) {
    if ($session_code == "") {
        return false;
    }
    if (trim($user_input) == trim($session_code)) {
        return true;
    }
    $number = array('0'=>'０', '1'=>'１', '2'=>'２', '3'=>'３', '4'=>'４', '5'=>'５', '6'=>'６', '7'=>'７', '8'=>'８', '9'=>'９', );
    $number_quan = '';
    for ($i = 0; $i < strlen($session_code); $i++) {
        $number_quan .= $number[$session_code[$i]];
    }
    if ($user_input == $number_quan) {
        return true;
    }
    return false;
}
?>